package cn.j0n4than.api.service;

import cn.j0n4than.api.entity.User;

import java.util.HashMap;

/**
 * 用户服务接口
 *
 * @author jonathan
 */
public interface UserService {

    /**
     * 添加用户
     *
     * @param user User 实例
     * @return 影响行数
     */
    int insert(User user);

    /**
     * 删除用户
     *
     * @param id 用户ID
     * @return 影响行数
     */
    int delete(int id);

    /**
     * 更新用户
     *
     * @param id   用户ID
     * @param user User 实例
     * @return 影响行数
     */
    int update(int id, User user);

    /**
     * 获取用户列表(分页)
     *
     * @param page  页码
     * @param limit 数据条数
     * @return result
     */
    HashMap<String, Object> getList(int page, int limit);

    /**
     * 通过ID找到用户
     *
     * @param id 用户ID
     * @return User 用户
     */
    User findUserById(int id);

    /**
     * 通过用户名找到用户
     *
     * @param username 用户名
     * @return User 用户
     */
    User findUserByUsername(String username);

    /**
     * 登陆验证
     *
     * @param username 用户名
     * @param password 密码
     * @return User 用户，验证失败返回null
     */
    User login(String username, String password);
}
